package view.steine;

import model.menupages.Gamepage;

public class Spielblock_gelb extends Spielblock {
	// der gelbe Spielblock ist das Quadrat
	// der feste Spielblock befindet sich links oben
	public Spielblock_gelb(Standardblock standardblock) {
		super(standardblock);
	}

	@Override
	public boolean doChecks(Standardblock[][] vorhandeneSpielsteine, int dir) {
		int x = (int) getPos().getX();
		int y = (int) getPos().getY() - 1;
		switch (dir) {
		case Spielblock.DOWN:
			if (y == 1) {
				return false;
			}
			if (vorhandeneSpielsteine[x][y - 2] == null
					&& vorhandeneSpielsteine[x + 1][y - 2] == null) {
				return true;
			} else {
				return false;
			}
		case Spielblock.LEFT:
			if (x == 0) {
				return false;
			}
			if (vorhandeneSpielsteine[x - 1][y] == null
					&& vorhandeneSpielsteine[x - 1][y - 1] == null) {
				return true;
			} else {
				return false;
			}
		case Spielblock.RIGHT:
			if (x >= 8) {
				return false;
			}
			if (vorhandeneSpielsteine[x + 2][y] == null
					&& vorhandeneSpielsteine[x + 2][y - 1] == null) {
				return true;
			} else {
				return false;
			}
		}
		return true;

	}

	@Override
	public void show(Gamepage gamepage) {
		int x = (int) getPos().getX();
		int y = (int) getPos().getY();
		getStandardblock().draw(x, y, gamepage);
		getStandardblock().draw(x + 1, y, gamepage);
		getStandardblock().draw(x, y - 1, gamepage);
		getStandardblock().draw(x + 1, y - 1, gamepage);
	}

	@Override
	public void remove(Gamepage gp) {
		double x = getPos().getX();
		double y = getPos().getY();
		getStandardblock().remove(x, y, gp);
		getStandardblock().remove(x + 1, y, gp);
		getStandardblock().remove(x, y - 1, gp);
		getStandardblock().remove(x + 1, y - 1, gp);
	}

	@Override
	public void setInArray(Standardblock[][] vorhandeneSpielsteine) {
		vorhandeneSpielsteine[(int) getPos().getX()][(int) getPos().getY() - 1] = getStandardblock();
		vorhandeneSpielsteine[(int) getPos().getX()][(int) getPos().getY() - 2] = getStandardblock();
		vorhandeneSpielsteine[(int) getPos().getX() + 1][(int) getPos().getY() - 1] = getStandardblock();
		vorhandeneSpielsteine[(int) getPos().getX() + 1][(int) getPos().getY() - 2] = getStandardblock();
	}

	@Override
	public void delOutOfArray(Standardblock[][] vorhandeneSpielsteine) {
		vorhandeneSpielsteine[(int) getPos().getX()][(int) getPos().getY() - 1] = null;
		vorhandeneSpielsteine[(int) getPos().getX()][(int) getPos().getY() - 2] = null;
		vorhandeneSpielsteine[(int) getPos().getX() + 1][(int) getPos().getY() - 1] = null;
		vorhandeneSpielsteine[(int) getPos().getX() + 1][(int) getPos().getY() - 2] = null;
	}

	@Override
	public boolean checkTurn(Standardblock[][] vorhandeneSpielsteine) {
		return true;
		
	}
}
